/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package banco_imobiliario.control;

import banco_imobiliario.AbstractFactoryLogradouro.LogradouroLucrosOuDividendosFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroImpostoDeRendaFactory;
import banco_imobiliario.AbstractFactoryLogradouro.EmpresaFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroPartidaFactory;
import banco_imobiliario.AbstractFactoryLogradouro.ImovelFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroNoticiaFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroVaParaPrisaoFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroPrisaoFactory;
import banco_imobiliario.AbstractFactoryLogradouro.LogradouroParadaLivreFactory;
import banco_imobiliario.model.*;

/**
 *
 * @author Andre
 */
public class DiretorIniciadorDeTabuleiro {
    
    public Tabuleiro criarTabuleiro() {
        TabuleiroContrutorCircularConcreteBuilder tabuleiroConntrutor = new TabuleiroContrutorCircularConcreteBuilder();

        //Criando as Fabricas
        LogradouroPartidaFactory partidaFac = new LogradouroPartidaFactory();
        ImovelFactory imovelFac = new ImovelFactory();
        EmpresaFactory empresaFac = new EmpresaFactory();
        LogradouroNoticiaFactory noticiaFac = new LogradouroNoticiaFactory();
        LogradouroPrisaoFactory prisaoFac = new LogradouroPrisaoFactory();
        LogradouroImpostoDeRendaFactory impostoDeRendaFac = new LogradouroImpostoDeRendaFactory();
        LogradouroLucrosOuDividendosFactory lucrosOuDividandosFac = new LogradouroLucrosOuDividendosFactory();
        LogradouroVaParaPrisaoFactory vaParaPrisaoFac = new LogradouroVaParaPrisaoFactory();
        LogradouroParadaLivreFactory paradLivreFac = new LogradouroParadaLivreFactory();

        //Adicionando Logradouros ao tabuleiro
        tabuleiroConntrutor.adicionar(partidaFac.criarLogradouro(1));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(2));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(3));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(4));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(5));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(6));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(7));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(8));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(9));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(10));
        tabuleiroConntrutor.adicionar(prisaoFac.criarLogradouro(11));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(12));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(13));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(14));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(15));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(16));
        tabuleiroConntrutor.adicionar(lucrosOuDividandosFac.criarLogradouro(17));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(18));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(19));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(20));
        tabuleiroConntrutor.adicionar(paradLivreFac.criarLogradouro(21));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(22));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(23));
        tabuleiroConntrutor.adicionar(impostoDeRendaFac.criarLogradouro(24));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(25));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(26));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(27));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(28));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(29));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(30));
        tabuleiroConntrutor.adicionar(vaParaPrisaoFac.criarLogradouro(31));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(32));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(33));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(34));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(35));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(36));
        tabuleiroConntrutor.adicionar(empresaFac.criarLogradouro(37));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(38));
        tabuleiroConntrutor.adicionar(noticiaFac.criarLogradouro(39));
        tabuleiroConntrutor.adicionar(imovelFac.criarLogradouro(40));       
        
        Tabuleiro tabuleiro = tabuleiroConntrutor.retornarTabuleiro();
//        System.out.println("Imprimeindo dentro do diretor: "+tabuleiro.toString());
        return tabuleiro;
    }
}
